libxenlight: typo in old patch, lead to waitpid forever instead of
authorKeir Fraser <keir.fraser@citrix.com>
Tue, 12 Jan 2010 07:04:46 +0000 (07:04 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Tue, 12 Jan 2010 07:04:46 +0000 (07:04 +0000)
waitpid with WNOHANG

fixes qemu starting problem

Signed-off-by: Vincent Hanquez <vincent.hanquez@eu.citrix.com>
tools/libxl/libxl_exec.c

index ba92019e4b7863f802c465eddf16922c970529cf..1588a1f54775f386a5df4132c0d930aa29d1feba 100644 (file)
@@ -45,7 +45,7 @@ static pid_t libxl_fork(struct libxl_ctx *ctx)
 
 static int call_waitpid(pid_t (*waitpid_cb)(pid_t, int *, int), pid_t pid, int *status, int options)
 {
-    return (waitpid_cb) ? waitpid_cb(pid, status, 0) : waitpid(pid, status, 0);
+    return (waitpid_cb) ? waitpid_cb(pid, status, options) : waitpid(pid, status, options);
 }
 
 void libxl_exec(struct libxl_ctx *ctx, int stdinfd, int stdoutfd, int stderrfd,
@@ -202,7 +202,7 @@ int libxl_spawn_check(struct libxl_ctx *ctx, void *for_spawn_void)
     if (!for_spawn) return 0;
 
     assert(for_spawn->intermediate);
-    got = call_waitpid(ctx->waitpid_instead, for_spawn->intermediate, &status, 0);
+    got = call_waitpid(ctx->waitpid_instead, for_spawn->intermediate, &status, WNOHANG);
     if (!got) return 0;
 
     assert(got == for_spawn->intermediate);